package org.jeecg.modules.hotel.requisition.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.basic.demo.apartment.entity.LwgyBaseApartment;
import org.jeecg.modules.basic.demo.student.entity.LwgyBaseStudent;
import org.jeecg.modules.hotel.arrangement.entity.LwgyHotelArrangement;
import org.jeecg.modules.hotel.requisition.entity.BuildDTO;
import org.jeecg.modules.hotel.requisition.entity.LwgyHotelHoliday;
import org.jeecg.modules.hotel.requisition.entity.LwgyHotelRequisition;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.hotel.requisition.entity.StudentRequest;

import java.util.List;
import java.util.Map;

public interface ILwgyHotelRequisitionService extends IService<LwgyHotelRequisition> {


    //事务申请推送
    void pushMsg(LwgyHotelRequisition lwgyHotelRequisition, String username, List<String> roles, LwgyBaseStudent lwgyBaseStudent);
    /**
     *  辅导员调整住宿推送
     *
     * @return
     */

    void pushWx(LwgyHotelRequisition lwgyHotelRequisition, String username, List<String> roles, LwgyBaseStudent lwgyBaseStudent);


    IPage<LwgyHotelRequisition> buildingQuery(Page<LwgyHotelRequisition> page, QueryWrapper<LwgyHotelRequisition> queryWrapper);

    List<BuildDTO> getbuild();

    List<Map<String,String>>listByPids(String pid);

    List<Map<String,String>> listByPides(String pid);

    void pushChangeMsg(LwgyHotelArrangement lwgyHotelArrangement, String username, String type);

    IPage<LwgyHotelRequisition> queryPageListCustoms(Page<LwgyHotelRequisition> page, QueryWrapper<LwgyHotelRequisition> queryWrapper);

    List<StudentRequest> getStudentRequisition(LwgyBaseApartment lwgyBaseApartment);

    IPage<LwgyHotelRequisition> queryHolidayPageList(Page<LwgyHotelRequisition> page, QueryWrapper<LwgyHotelRequisition> queryWrapper);


    List<Map<String, String>> listByStuNum(String studentNumber);

    LwgyHotelRequisition getStuAdmin(String studentId);

    /** 导出假期管理名单 */
    List<LwgyHotelHoliday> outHolidayStu(LwgyHotelRequisition requisition);

    /** 删除假期学生 */
    void batchDelete(String ids);
}
